/**
 * 
 */
package truerefactor.refactor;

import truerefactor.graph.CodeGraph;

/**
 * DuplicateObservedData - An implementation of the Duplicate Observed Data
 * refactoring technique.
 * 
 * @author Isaac
 */
public class DuplicateObservedData extends Refactoring {

    /**
     * Creates a new instance of DuplicateObservedData
     */
    public DuplicateObservedData()
    {
        this.shortName = "DUPDATA";
        this.name = "Duplicate Observed Data";
        this.description = "";
    }

    /*
     * (non-Javadoc)
     * @see
     * truerefactor.refactor.Refactoring#execute(truerefactor.graph.CodeGraph )
     */
    @Override
    public void execute(CodeGraph graph)
    {
        // 1. Make the prsentation class an observer of the domain class

        // 2. Use Self Encapsulate Field on the domain data within the GUI class

        // 3. Compile and Test

        // 4. Add a call to the setting method in the event handler to update
        // the component with its current value using direct access.

        // 5. Compile and test

        // 6. Define the data and accessor methods in the domain class

        // 7. Redirect the accessors to write to he domain field.

        // 8. Modify the observer's update method to copy the data from the
        // domain field to the GUI control.

        // 9. Compile and test

    }
}
